{$CLEO .qa}
{$USE CLEO+}
{$USE newOpcodes}
{$USE ini}

0000: NOP

script_name "INTREQ1"

// By ArtemQa146

const
    ped_1 = 31@
    ped_2 = 30@
    ped_3 = 29@
    ped_4 = 28@
    ped_5 = 27@
    progress = 26@
    sweep = 25@
    sponge = 24@
    render_1 = 23@
    render_S = 22@
    event = 21@
    sprite = 20@
    sprite_2 = 19@
    obj_1 = 18@
    obj_2 = 17@
    obj_3 = 16@
    obj_4 = 15@
    obj_5 = 14@
    obj_6 = 13@
    obj_7 = 12@
end


0085: sweep = 0@ // (int)
0085: sponge = 1@ // (int)

            repeat
            wait 0
            04ED: load_animation  "PedEventsMod"
            until 04EE:   animation "PedEventsMod" loaded
            
            repeat
            wait 0
            04ED: load_animation  "shop"
            until 04EE:   animation "shop" loaded

            model.Load(133)
            model.Load(31)
            model.Load(198)
            model.Load(2702)
            model.Load(2427)
            model.Load(2218)
            model.Load(2219)
            model.Load(2353)
            model.Load(2354)
            model.Load(2355)
            model.Load(2220)
            model.Load(1546)
            if
                not model.Available(133)
            then
                repeat
                wait 0
                model.Load(133)
                until model.Available(133)
            end
            if
                not model.Available(31)
            then
                repeat
                wait 0
                model.Load(31)
                until model.Available(31)
            end
            if
                not model.Available(198)
            then
                repeat
                wait 0
                model.Load(198)
                until model.Available(198)
            end
            if
                not model.Available(2702)
            then
                repeat
                wait 0
                model.Load(2702)
                until model.Available(2702)
            end
            if
                not model.Available(2427)
            then
                repeat
                wait 0
                model.Load(2427)
                until model.Available(2427)
            end
            if
                not model.Available(2218)
            then
                repeat
                wait 0
                model.Load(2218)
                until model.Available(2218)
            end
            if
                not model.Available(2219)
            then
                repeat
                wait 0
                model.Load(2219)
                until model.Available(2219)
            end
            if
                not model.Available(2353)
            then
                repeat
                wait 0
                model.Load(2353)
                until model.Available(2353)
            end
            if
                not model.Available(2354)
            then
                repeat
                wait 0
                model.Load(2354)
                until model.Available(2354)
            end
            if
                not model.Available(2355)
            then
                repeat
                wait 0
                model.Load(2355)
                until model.Available(2355)
            end
            if
                not model.Available(2220)
            then
                repeat
                wait 0
                model.Load(2220)
                until model.Available(2220)
            end
            if
                not model.Available(1546)
            then
                repeat
                wait 0
                model.Load(1546)
                until model.Available(1546)
            end
            038B: load_requested_models
            event = false
            
            0E40: get_current_hour 1@
            if and
                1@ >= 7
                1@ < 19
            then
            
                event = true
                
                // ped 1
                
                009A: ped_1 = create_actor_pedtype 5 model 198 at 450.8039 -82.2305 999.5547
                0173: set_actor ped_1 Z_angle_to 180.0
                0E24: fix_char ped_1 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_1 perform_animation "liquor_cas" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                
                
                // ped 2

                009A: ped_2 = create_actor_pedtype 4 model 133 at 451.5441 -80.1499 999.5547
                0173: set_actor ped_2 Z_angle_to 270.0
                0E24: fix_char ped_2 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_2 perform_animation "chef_2" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                
                0209: 1@ = random_int_in_ranges 0 2
                0209: 2@ = random_int_in_ranges 0 2
                0209: 3@ = random_int_in_ranges 0 2
                
                
                // ped 3

                if 1@ == 1
                then
                    0376: ped_3 = create_random_actor_at 447.3553 -90.9562 1000.0225
                    0173: set_actor ped_3 Z_angle_to 262.965
                else
                    0376: ped_3 = create_random_actor_at 439.6792 -91.9818 1000.0225
                    0173: set_actor ped_3 Z_angle_to 270.0
                end
                
                0E24: fix_char ped_3 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_3 perform_animation "restql_seat" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                
                
                // ped 4
                
                if 2@ == 1
                then
                    0376: ped_4 = create_random_actor_at 458.9221 -82.8389 1000.0225
                    0173: set_actor ped_4 Z_angle_to 180.0
                else
                    0376: ped_4 = create_random_actor_at 447.8695 -87.9709 1000.0225
                    0173: set_actor ped_4 Z_angle_to 353.0
                end
                
                0E24: fix_char ped_4 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_4 perform_animation "restql_seat" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                
                
                // ped 5
                
                if 3@ == 1
                then
                    0376: ped_5 = create_random_actor_at 447.8398 -86.2159 1000.0225
                    0173: set_actor ped_5 Z_angle_to 180.0
                else
                    0376: ped_5 = create_random_actor_at 442.5545 -86.3168 1000.0225
                    0173: set_actor ped_5 Z_angle_to 180.0058
                end
                
                0E24: fix_char ped_5 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_5 perform_animation "restql_seat" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB


                0E2E: create_render_object_to_char_bone ped_1 model 2702 bone 34 offset 0.05 0.1 0.0 rotation 0 0 0 store_to render_S
                0E37: set_render_object_scale render_S 0.8 0.8 0.8
                0E31: set_render_object_visible render_S 0
                0E2E: create_render_object_to_char_bone ped_5 model 2702 bone 24 offset 0.05 0.1 0.0 rotation 0 0 0 store_to 1@
                0E37: set_render_object_scale 1@ 0.8 0.8 0.8
                0E2E: create_render_object_to_char_bone ped_3 model 2702 bone 24 offset 0.05 0.1 0.0 rotation 0 0 0 store_to 1@
                0E37: set_render_object_scale 1@ 0.8 0.8 0.8
                0E2E: create_render_object_to_char_bone ped_4 model 2702 bone 24 offset 0.05 0.1 0.0 rotation 0 0 0 store_to 1@
                0E37: set_render_object_scale 1@ 0.8 0.8 0.8

            else
            
                // ped 1
            
                0209: 1@ = random_int_in_ranges 0 2
                
                if 1@ == 1
                then
                    009A: ped_1 = create_actor_pedtype 4 model 198 at 451.4443 -82.2268 999.5547
                    0173: set_actor ped_1 Z_angle_to 180.0
                else
                    009A: ped_1 = create_actor_pedtype 4 model 198 at 449.4335 -82.2285 999.5547
                    0173: set_actor ped_1 Z_angle_to 180.0
                end
                
                0E24: fix_char ped_1 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_1 perform_animation "SHP_SERVE_LOOP" IFP "shop" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                
                
                // ped 2
                
                0209: 1@ = random_int_in_ranges 0 2
                
                if 1@ == 1
                then
                    009A: ped_2 = create_actor_pedtype 4 model 133 at 457.1842 -84.1868 999.5547
                    0173: set_actor ped_2 Z_angle_to 174.0
                else
                    009A: ped_2 = create_actor_pedtype 4 model 133 at 457.1842 -84.1868 999.5547
                    0173: set_actor ped_2 Z_angle_to 357.0
                end
                
                0E24: fix_char ped_2 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_2 perform_animation "Sweep" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                0F02: create_render_object_to_char_bone_from_special ped_2 special_model sweep bone 24 offset 0 0 0 rotation 0 0 0 store_to 1@
                
                
                // ped 3

                0209: 1@ = random_int_in_ranges 0 2
                
                if 1@ == 1
                then
                    009A: ped_3 = create_actor_pedtype 5 model 31 at 446.0721 -79.8306 999.5547
                    0173: set_actor ped_3 Z_angle_to 0.0
                else
                    009A: ped_3 = create_actor_pedtype 5 model 31 at 445.6855 -83.6887 999.5547
                    0173: set_actor ped_3 Z_angle_to 0.0
                end
                
                0E24: fix_char ped_3 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_3 perform_animation "wash_right" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                0F02: create_render_object_to_char_bone_from_special ped_3 special_model sponge bone 24 offset 0 0 0 rotation 0 0 0 store_to 1@
                
                
                // ped 4

                009A: ped_4 = create_actor_pedtype 4 model 133 at 451.5441 -80.1499 999.5547
                0173: set_actor ped_4 Z_angle_to 270.0
                0E24: fix_char ped_4 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_4 perform_animation "Boot_Idles" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                
                
                // ped 5
                
                0209: 1@ = random_int_in_ranges 0 2
                
                if 1@ == 1
                then
                    009A: ped_5 = create_actor_pedtype 5 model 31 at 444.3896 -88.9905 999.5547
                    0173: set_actor ped_5 Z_angle_to 289.622
                else
                    009A: ped_5 = create_actor_pedtype 5 model 31 at 436.5735 -83.5606 999.5547
                    0173: set_actor ped_5 Z_angle_to 135.0
                end
                
                0E24: fix_char ped_5 ground 1 brightness 1 and_fade_in 0
                0812: AS_actor ped_5 perform_animation "Sweep" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                0F02: create_render_object_to_char_bone_from_special ped_5 special_model sweep bone 24 offset 0 0 0 rotation 0 0 0 store_to 1@
                
            end

            
            0860: link_actor ped_1 to_interior 4
            0860: link_actor ped_2 to_interior 4
            0860: link_actor ped_3 to_interior 4
            0860: link_actor ped_4 to_interior 4
            0860: link_actor ped_5 to_interior 4
            
            0E01: create_object_no_save 2427 at 441.55 -82.768 999.6747 offset 0 ground 0 to sprite
            0177: set_object sprite Z_angle_to 0.0
            0400: store_coords_to 1@ 2@ 3@ from_object sprite with_offset -0.1 -0.2 0.0
            0E01: create_object_no_save 2427 at 1@ 2@ 3@ offset 0 ground 0 to sprite_2
            0177: set_object sprite_2 Z_angle_to 180.0
            
            0E01: create_object_no_save 2218 at 445.2484 -83.058 999.585 offset 0 ground 0 to obj_1
            0453: set_object obj_1 XY_rotation -26.0 26.0 angle 75.0
            
            0E01: create_object_no_save 2219 at 446.2484 -83.058 999.585 offset 0 ground 0 to obj_2
            0453: set_object obj_2 XY_rotation -26.0 26.0 angle 75.0
            
            0E01: create_object_no_save 2353 at 447.6 -83.058 999.585 offset 0 ground 0 to obj_3
            0453: set_object obj_3 XY_rotation -26.0 26.0 angle 75.0

            0E01: create_object_no_save 2354 at 448.6 -83.058 999.585 offset 0 ground 0 to obj_4
            0453: set_object obj_4 XY_rotation -26.0 26.0 angle 75.0
            
            0E01: create_object_no_save 2355 at 448.1 -83.058 999.885 offset 0 ground 0 to obj_5
            0453: set_object obj_5 XY_rotation -26.0 26.0 angle 75.0
            
            0E01: create_object_no_save 2218 at 450.9957 -83.058 999.655 offset 0 ground 0 to obj_6
            0453: set_object obj_6 XY_rotation -26.0 26.0 angle 75.0
            
            0E01: create_object_no_save 1546 at 446.0681 -79.0275 999.7 offset 0 ground 0 to obj_7
            0F03: create_render_object_to_object obj_7 model 1546 offset 0.3 0.0 0.0 rotation 0.0 0.0 0.0 store_to 1@
            0F03: create_render_object_to_object obj_7 model 1546 offset -0.3 0.0 0.0 rotation 0.0 0.0 0.0 store_to 1@
            0F03: create_render_object_to_object obj_7 model 1546 offset 0.2 0.0 0.5 rotation 0.0 0.0 0.0 store_to 1@
            0F03: create_render_object_to_object obj_7 model 1546 offset -0.1 0.0 0.5 rotation 0.0 0.0 0.0 store_to 1@


            model.Destroy(133)
            model.Destroy(198)
            model.Destroy(31)
            model.Destroy(2702)
            model.Destroy(2427)
            model.Destroy(2218)
            model.Destroy(2219)
            model.Destroy(2353)
            model.Destroy(2354)
            model.Destroy(2220)
            model.Destroy(2355)
            model.Destroy(1546)
            04EF: release_animation "PedEventsMod"
            04EF: release_animation "shop"

            1@ = 0
            timera = 0

            repeat
            wait 0
            if and
                056D:   actor ped_1 defined
                056D:   actor ped_2 defined
                056D:   actor ped_3 defined
                056D:   actor ped_4 defined
                056D:   actor ped_5 defined
            then
            
                if
                    not $ACTIVE_INTERIOR == 4
                then
                    break
                end


                if or
                    051A:   actor ped_1 damaged_by_actor $PLAYER_ACTOR
                    051A:   actor ped_2 damaged_by_actor $PLAYER_ACTOR
                    051A:   actor ped_3 damaged_by_actor $PLAYER_ACTOR
                    051A:   actor ped_4 damaged_by_actor $PLAYER_ACTOR
                    051A:   actor ped_5 damaged_by_actor $PLAYER_ACTOR
                then
                    break
                end


                if or
                    not locate_char_distance_to_coordinates $player_actor pos 443.9658 -86.0221 999.5547 radius 120.0
                    0118:   actor ped_1 dead
                    0118:   actor ped_2 dead
                    0118:   actor ped_3 dead
                    0118:   actor ped_4 dead
                    0118:   actor ped_5 dead
                then
                    break
                end
                
                080E: get_actor ped_1 ped_event_to 1@
                080E: get_actor ped_2 ped_event_to 2@
                if or
                    1@ == 15
                    1@ == 31
                    1@ == 59
                    2@ == 15
                    2@ == 31
                    2@ == 59
                then
                    break
                end
                
                080E: get_actor ped_3 ped_event_to 1@
                080E: get_actor ped_4 ped_event_to 2@
                if or
                    1@ == 15
                    1@ == 31
                    1@ == 59
                    2@ == 15
                    2@ == 31
                    2@ == 59
                then
                    break
                end
                
                080E: get_actor ped_5 ped_event_to 1@
                if or
                    1@ == 15
                    1@ == 31
                    1@ == 59
                then
                    break
                end

                080E: get_actor ped_1 ped_event_to 1@
                080E: get_actor ped_2 ped_event_to 2@
                080E: get_actor ped_3 ped_event_to 3@
                if or
                    1@ == 49
                    1@ == 9
                    2@ == 49
                    2@ == 9
                    3@ == 49
                    3@ == 9
                then
                    break
                end

                080E: get_actor ped_4 ped_event_to 1@
                080E: get_actor ped_5 ped_event_to 2@
                if or
                    1@ == 49
                    1@ == 9
                    2@ == 49
                    2@ == 9
                then
                    break
                end

                if or
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_1
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_2
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_3
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_4
                    0457:   player $PLAYER_CHAR aiming_at_actor ped_5
                then
                    0E83: get_current_char_weaponinfo $PLAYER_ACTOR store_to 1@
                    0E89: get_weaponinfo_fire_type 1@ store_to 2@ //     
                    if or
                        2@ == 1 //  
                        2@ == 3 //   (  ..)
                    then
                        break
                    end
                end
                
                
                gosub @Eat
                gosub @Drink


            else
                break
            end
            until not player.Defined(0)
            if 056D:   actor ped_1 defined
            then 01C2: remove_references_to_actor ped_1 // Like turning an actor into a random pedestrian
            end
            if 056D:   actor ped_2 defined
            then 01C2: remove_references_to_actor ped_2 // Like turning an actor into a random pedestrian
            end
            if 056D:   actor ped_3 defined
            then 01C2: remove_references_to_actor ped_3 // Like turning an actor into a random pedestrian
            end
            if 056D:   actor ped_4 defined
            then 01C2: remove_references_to_actor ped_4 // Like turning an actor into a random pedestrian
            end
            if 056D:   actor ped_5 defined
            then 01C2: remove_references_to_actor ped_5 // Like turning an actor into a random pedestrian
            end
            if 03CA:   object sprite exists
            then 01C4: remove_references_to_object sprite // This object will now disappear when the player looks away
            end
            if 03CA:   object sprite_2 exists
            then 01C4: remove_references_to_object sprite_2 // This object will now disappear when the player looks away
            end
            if 03CA:   object obj_1 exists
            then 01C4: remove_references_to_object obj_1 // This object will now disappear when the player looks away
            end
            if 03CA:   object obj_2 exists
            then 01C4: remove_references_to_object obj_2 // This object will now disappear when the player looks away
            end
            if 03CA:   object obj_3 exists
            then 01C4: remove_references_to_object obj_3 // This object will now disappear when the player looks away
            end
            if 03CA:   object obj_4 exists
            then 01C4: remove_references_to_object obj_4 // This object will now disappear when the player looks away
            end
            if 03CA:   object obj_5 exists
            then 01C4: remove_references_to_object obj_5 // This object will now disappear when the player looks away
            end
            if 03CA:   object obj_6 exists
            then 01C4: remove_references_to_object obj_6 // This object will now disappear when the player looks away
            end
            if 03CA:   object obj_7 exists
            then 01C4: remove_references_to_object obj_7 // This object will now disappear when the player looks away
            end
            repeat
            wait 0
            until not $ACTIVE_INTERIOR == 4

0A93: terminate_this_custom_script


:Eat
    if and
        progress == 0
        0EEA: locate_char_distance_to_coordinates $PLAYER_actor pos 450.8039 -83.6625 999.5547 radius 5.0
        event == true
    then
        if and
            010A:   player $PLAYER_CHAR money > 3
            00F0:   actor $PLAYER_actor 1 near_point 450.8039 -83.6625 radius 0.6 0.6 stopped_on_foot
        then
            progress = 1
        end
    end

    if
        progress == 1
    then
        0109: player $PLAYER_CHAR money += -3
        0172: 1@ = actor ped_1 Z_angle
        1@ += 180.0
        0173: set_actor $PLAYER_ACTOR Z_angle_to 1@

        0615: define_AS_pack_begin 1@
        0812: AS_actor -1 perform_animation "ice_ped" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1
        0812: AS_actor -1 perform_animation "ice_2" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1
        0616: define_AS_pack_end 1@
        0618: assign_actor $PLAYER_actor to_AS_pack 1@
        061B: remove_references_to_AS_pack 1@

        0615: define_AS_pack_begin 1@
        0812: AS_actor -1 perform_animation "restq_sell" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1
        0812: AS_actor -1 perform_animation "liquor_cas" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1
        0616: define_AS_pack_end 1@
        0618: assign_actor ped_1 to_AS_pack 1@
        061B: remove_references_to_AS_pack 1@
        progress = 2
    end

    if and
        8611:   not actor $PLAYER_actor performing_animation "ice_2"
        0611:   actor ped_1 performing_animation "restq_sell"
    then
        0613: 1@ = actor ped_1 animation "restq_sell" time
        if
            1@ > 0.35
        then
            0E31: set_render_object_visible render_S 1
        end
    end

    if and
        progress == 2
        0611:   actor $PLAYER_actor performing_animation "ice_2"
    then
        progress = 3
        timera = 0
        0226: 1@ = actor $PLAYER_actor health
        1@ += 5
        0223: set_actor $PLAYER_actor health_to 1@
        0E31: set_render_object_visible render_S 0
        model.Load(2702)
        038B: load_requested_models
        0E2E: create_render_object_to_char_bone $PLAYER_actor model 2702 bone 34 offset 0.05 0.1 0.0 rotation 0 0 0 store_to render_1
        0E37: set_render_object_scale render_1 0.8 0.8 0.8
        model.Destroy(2702)
    end

    if
        progress == 3
    then
        if or
            timera > 5000
            8611:   not actor $PLAYER_actor performing_animation "ice_2"
        then
            0E2F: delete_render_object render_1
            progress = 4
        end
    end

    if
        progress == 4
    then
        if
            not locate_char_distance_to_coordinates $PLAYER_actor pos 451.1875 -83.6625 999.5547 radius 2.5
        then
            progress = 0
        end
    end
return

:Drink
    if and
        progress == 0
        0EEA: locate_char_distance_to_coordinates $PLAYER_actor pos 441.5124 -83.7472 999.5547 radius 5.0
        event == true
    then
        if and
            010A:   player $PLAYER_CHAR money > 1
            00F0:   actor $PLAYER_actor 1 near_point 441.5124 -83.7472 radius 0.6 0.6 stopped_on_foot
        then
            progress = 11
        end
    end

    if
        progress == 11
    then
        0109: player $PLAYER_CHAR money += -1
        0173: set_actor $PLAYER_ACTOR Z_angle_to 358.3759

        0812: AS_actor $PLAYER_ACTOR perform_animation "restq_dr" IFP "PedEventsMod" framedelta 5.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1

        progress = 12
    end

    if and
        progress == 12
        0611:   actor $PLAYER_actor performing_animation "restq_dr"
    then
        progress = 13
        timera = 0
        0226: 1@ = actor $PLAYER_actor health
        1@ += 5
        0223: set_actor $PLAYER_actor health_to 1@
        model.Load(1546)
        038B: load_requested_models
        0E2E: create_render_object_to_char_bone $PLAYER_actor model 1546 bone 34 offset 0.08 0.025 -0.02 rotation 0 180.0 0 store_to render_1
        0E37: set_render_object_scale render_1 0.8 0.8 0.8
        model.Destroy(1546)
    end

    if
        progress == 13
    then
        if or
            timera > 5000
            8611:   not actor $PLAYER_actor performing_animation "restq_dr"
        then
            0E2F: delete_render_object render_1
            progress = 14
        end
    end

    if
        progress == 14
    then
        if
            not locate_char_distance_to_coordinates $PLAYER_actor pos 441.5124 -83.7472 999.5547 radius 2.5
        then
            progress = 0
        end
    end
return